package com.xiaoq.apis.user;

import java.util.List;


public interface IUserApi {
    UserInfo4SocialVo getUserInfo4Social(String id);

    /**
     * 根据用户Id获取用户信息
     *
     * @param id
     * @return
     */
    UserInfo4UserCouponVo getUserInfoById(String id);

    /**
     * 获取登录用户关注的讲解员列表
     *
     * @param userId       登录的用户ID
     * @param targetIdList 讲解员ID 列表
     * @param targetType   关注的类型
     * @return
     */
    List<FollowInfo4InterpreterVo> getFollowList(String userId, List<String> targetIdList, String targetType);

    /**
     * 根据userId获取shopId(如果后需要将更多的用户信息存到redis里面那么可能返回时一个信息json串)现在是shopId
     *
     * @param userId
     * @return
     */
    String getShowIdByUserId(String userId);

    /**
     * 根据mobile查找用户是否为讲解员
     *
     * @param mobile
     * @return
     */
    UserInfo4InterVo getUserByMobile(String mobile);

    /**
     * 添加讲解员角色到User 上
     *
     * @param userId
     * @return
     */
    boolean addInterRole2UserByUserId(String userId);

    /**
     * 根据用户ID 去掉用户的讲解员权限
     *
     * @param userId
     * @return
     */
    boolean removeUserInterRole(String userId);

    /**
     * 游客一览 接口获取用户的信息
     * @param userIds
     * @return
     */
    List<UserInfo4OrderTourVo> getUserInfo4OrderTourByUserIds(List<String> userIds);


    /**
     *  根据userId获取 用户的归属地信息
     * @param userIds
     * @return
     */
    List<UserPhone4OrderVo> getUserPhone4OrderTourByUserIds(List<String> userIds);

    /**
     * 根据城市长途编码, 获取用户归属地的信息
     * @param areaCodeList
     * @return
     */
    List<UserPhone4PositionVo> getUserPhone4PositionByAreaCodeList(List<String> areaCodeList);
}